// [SCOI2009]WINDY数
// 陈锋
#include <bits/stdc++.h>
using namespace std;
#define _for(i, a, b) for (int i = (a); i < (int)(b); ++i)
#define _rep(i, a, b) for (int i = (a); i <= (int)(b); ++i)

int F[20][20];  // F[i][j]表示i位数，最高位为j的windy数的个数
void init() {
  _for(i, 0, 10) F[1][i] = 1;  // 1位数
  _rep(i, 2, 10) _for(j, 0, 10) _for(k, 0, 10) if (abs(j - k) >= 2) {
    F[i][j] += F[i - 1][k];
  }
}

int solve(int x) {  //小于x的windy数
  int ans = 0, len = 0, b[20];
  while (x > 0) b[++len] = x % 10, x /= 10;  //从右到左解析
  b[len + 1] = -1;
  _for(i, 1, len) _for(j, 1, 10) ans += F[i][j];  //比x短的数字
  _for(i, 1, b[len]) ans += F[len][i];  // 位数相同，但是高位小于b的高位
  // 目标数字从右数第i+1开始和x都相同，但是i位比x小，且前面部分符合windy数的规则
  for (int i = len - 1; i > 0; i--) {
    _for(j, 0, b[i]) if (abs(j - b[i + 1]) >= 2) ans += F[i][j];
    if (abs(b[i] - b[i + 1]) < 2) break;
  }
  return ans;
}

typedef long long LL;
int main() {
  init();
  ios::sync_with_stdio(false), cin.tie(0);
  for (int x, y; cin >> x >> y;) 
    cout << solve(y + 1) - solve(x) << endl;
  return 0;
}
// 44125559	[SCOI2009]WINDY数	答案正确	100	2	504	1062
// C++	2020-07-07 17:24:08